The present invention relates in general to programmed data processing systems, and in particular to programmable deterministic finite state automata machines and graphical user interface (GUI) systems.
A finite state automation, also called a xe2x80x9cfinite state machinexe2x80x9d or xe2x80x9ctransducer,xe2x80x9d consists of a set of states, a set of input events, a set of output events, and a state transition function. The set of states includes an internal state. Some states may be designed as xe2x80x9cterminal states.xe2x80x9d The state transition function takes the current state in an input event and returns the new set of output events and the next state. The finite state machine can also be viewed as a function which maps an ordered sequence of input events onto a corresponding sequence of output events.
A deterministic finite state automation is one where each next state is uniquely determined by a single input event. A deterministic finite state automation is contrasted with a backtracking automation, where at each state there may be several possible actions and the only way to choose between them is to try each one and backtrack if that transition fails.
A deterministic finite state automation can be depicted in a variety of manners well-recognized within the mathematical art. One way in which a deterministic finite state automation might be depicted is in a table format. For example:
For greater clarity, a deterministic finite state automation may be depicted graphically as in FIG. 1, which illustrates the automation of the table. The first row of the table format is depicted by a Begin state 101. The next state listed on the table is A 103. Movement is made from the Begin state 101 to the A state 103 upon a starting condition 111. Likewise, the diagram illustrates that states B 105 exit conditions for 5 119 and 6 121, and state C 107 has an exit condition 4 117.
Finite state automata have been reduced to programming code, as demonstrated by FIG. 2. While FIG. 2 demonstrates iterative meta-code to implement the finite state automation shown in the table above and FIG. 1, those skilled in the art will appreciate that deterministic finite state automata may be implemented in a variety of programming languages to achieve results similar to the results obtained from the pseudo-code in FIG. 2. Deterministic finite state automation are well-suited to being programmed in object-oriented languages. In fact, object-oriented languages have heretofore been considered ideal for computer implementation of the deterministic finite state automata model.
Those skilled in the art will appreciate, however, that, regardless of the language used, significant skill is required to render a coded implementation of an iterative process. The instant invention addresses this barrier by presenting a system which can use the graphical implications of a finite state automata model to overcome the limitations inherent in implementing a sequenced engine.
The invention is a graphical-oriented editor that greatly simplifies the creation, testing, and subsequent revision of an activity sequencer engine through the use of a deterministic finite state automata model. The editor is based upon the concept of functional units (FUs). Each FU represents a state in a deterministic finite state automation. Each FU is an object that facilitates the meaningful connection to other AFUs to construct a larger logical entity which is an activity functional unit (AFU). Any AFU may be treated as a FU and nested.
By manipulating the FUs and defining relationships between them graphically on the screen, the instant invention allows a user to build a complete sequenced program from FUs. The resulting program is an AFU can be combined with other AFUs and previously created AFUs to build large, complex programs.
Three control structures are necessary to implement to any iterative program: sequence, branching, and iteration. Therefore, the instant invention provides for each of these features in order to permit construction of the most powerful and fully functional sequenced engine programs.
A database structure is also disclosed for facilitation of the display of the FU in the graphical environment.
The development cycle for products built from FUs through the instant graphical editor is considerably shorter than the development cycle for products constructed in a more traditional coding manner. Consequently, the cost of development is decreased. Short development cycles also enable development groups to more quickly respond to product management and marketing requirements.
The use of FUs and the graphic editor also considerably reduces the complexity of modifications to existing activity sequencer engines. Consequently, the cost of upkeep and maintenance of programs is decreased. Development groups are also able to then respond quickly to modification requirements.
The foregoing outlines broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be is described hereinafter, which form the subject of the claims of the invention.